import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// import Mock from 'mockjs'
import '@/plugin'
import '@/mock'

import * as api from './api'
Vue.prototype.$api = api

Vue.config.productionTip = false






//全局注册
import TypeNav from '@/components/TypeNav'
Vue.component(TypeNav.name,TypeNav)
import SwiperList from '@/components/SwiperList'
Vue.component(SwiperList.name,SwiperList)
import Pagination from '@/components/Pagination'
Vue.component(Pagination.name,Pagination)


new Vue({
  beforeCreate() {
    Vue.prototype.$bus = this  //安装总线
  },
  router,
  store,
  render: h => h(App),
}).$mount('#app')

//测试二次封装
// import request from './utils/request'
// request.get('/product/getBaseCategoryList').then(res => {
//   console.log('res', res);
// }).catch(err => {
//   console.log('err', err);
// })


// mock测试
// import mockRequest from '@/utils/mockRequest'
// mockRequest.get('/getUserinfo').then(res => {
//   console.log('res', res);
// }).catch(err => {
//   console.log('err', err);
// })


// ES6模块化测试代码
// import { a, fn } from '@/ESModules/01' // 分别暴露引入
// import * as ES1 from '@/ESModules/01' // 分别暴露引入
// console.log(a, fn)
// console.log(ES1)
// import { b, fun } from '@/ESModules/02'
// console.log(b, fun)
// // 按道理来说应该是这么引入,但是会报错
// // 因为default是一个关键字
// // import { default } from '@/ESModules/03'
// // 如果非要想用
// import { default as xxx } from '@/ESModules/03'
// console.log(xxx)
// // 默认暴露使用input引入有简写
// import yyy from '@/ESModules/03'
// console.log(yyy)
// import 引入是看不到export暴露出来的对象长什么样子的
// 可以使用 require 引入,这样可以看到长什么样子
// console.log( require('./ESModules/01') )
// console.log( require('./ESModules/02') )
// console.log( require('./ESModules/03') )

